package org.dtrd.modules.service.service;

import com.baomidou.mybatisplus.extension.service.IService;
import org.dtrd.modules.service.entity.bean.ServiceCategoryInfo;
import org.dtrd.modules.service.entity.po.DtrdEntRdServiceCategory;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * <p>
 * 服务套餐分类信息 服务类
 * </p>
 *
 * @author QR
 * @since 2021-11-19 18:52:54
 */
public interface IDtrdEntRdServiceCategoryService extends IService<DtrdEntRdServiceCategory> {

    /**
     * 获取服务套餐分类列表
     * @return 服务套餐数据对象列表
     */
    List<ServiceCategoryInfo> getServiceCategoryList();

    /**
     * 按照机构编码获取服务套餐分类列表
     * @param orgCode
     * @return
     */
    List<ServiceCategoryInfo> getServiceCategoryList(String orgCode);

    /**
     * 更新或修改服务套餐分类内容
     * @param dto 服务套餐内容信息
     * @return 操作结果
     */
    boolean saveOrUpdateServiceCategoryInfo(ServiceCategoryInfo dto);

    /**
     * 判断同名服务分类
     */
    boolean hasSameServiceCategoryName(Integer categoryId, String categoryName, String orgCode);

    /**
     * 逻辑删除服务套餐分类以及该分类下的所有服务套餐
     * @param categoryId 服务套餐分类
     * @return 操作结果
     */
    @Transactional(rollbackFor = Exception.class)
    boolean removeServiceCategoryInfo(Integer categoryId);

    /**
     * 获取服务分类详情
     * @param categoryId 服务分类id
     * @return 服务分类信息对象
     */
    ServiceCategoryInfo getServiceCategory(Integer categoryId);
}
